Rotating data-storage devices, commonly referred to as hard disk drives (HDD), read and write information along concentric tracks formed on disks. To navigate to a particular track on a disk, disk drives may use servo fields on the disk. These fields are utilized by a servo subsystem to position a head over a particular track. Servo writers write the servo fields onto the disk in tracks when the disk drive is manufactured and these fields are then accessed by the disk drive to determine position. Hereinafter, the path defined by the servo fields shall be referred to as the “servo track” to distinguish it from a data track. Ideally, a head following the center of a servo track moves along a perfectly circular path around the disk. In such an ideal case, the servo track and data track would be identical.
In reality, however, as a head attempts to follow a track it will not follow a perfect circular path. Instead, the head will deviate from the desired circular path due to a variety of factors including disk irregularity, disk eccentricity, and/or misalignments of the spindle axis assembly. This deviation from the desired path is referred to as “runout.” Repeatable runout (RRO) refers to deviation that is non-random and occurs with some predictability. During disk drive manufacture, RRO can be measured and corresponding RRO offset values can be determined. Such RRO correction data can be generated for each track, or even each sector, and then stored on the disk within the servo pattern.
There are two types of RRO, synchronous RRO and Non-synchronous RRO. Synchronous RRO has minimal variation from track to track and is predictable. It can usually be easily compensated for through calibration factors applied globally to the entire disk. These global calibration factors are often stored in the reserved area of the disk. Non-synchronous RRO is more problematic because it is unpredictable and varies from track to track. It is corrected through RRO correction data generated for each track or sector and typically stored on the disk in the same area as the servo pattern for each track sector. When the HDD is operational, the correctional data is read and applied in the servo-control loop.
Determining the offset values for each sector and writing the RRO data to the RRO field portion of the individual sector servo patterns is a very time consuming process. Because the data is stored within each track sector, the RRO data takes up disk surface area that could be used to store user data. Typically about 20-50% of the servo sector overhead is for RRO data. Further, the RRO data is also spread out, so there is no efficient way to compress all of the RRO data to save on disk space.
Accordingly there is a need for an improved method to compensate for storing and accessing non-synchronous RRO data.